#ifndef TC_CONFIG_LINUX_H
#define TC_CONFIG_LINUX_H

/** \file ConfigLinux.h 
 * Configuration items for Linux platform.
 *
 * (C) Copyright Semih Cemiloglu
 * All rights reserved, see COPYRIGHT file for details.
 *
 * $Id: ConfigLinux.h 117 2006-06-19 06:49:41Z semihc $
 *
 *
 */


/* Make sure we are on Linux */
#ifndef TC_PLAT_Linux
# error This file should be included only on Linux
#endif

/* Determine arhitecture */
#if defined(__i386)
#  define TC_ARCH __i386
#  define TC_ARCH_i386 1
#elif defined(__amd64)
#  define TC_ARCH __amd64
#  define TC_ARCH_amd64 1
#else
#  error Unknown Linux architecture
#endif

/* Determine compiler */
#if defined(__GNUC__)
#  define TC_COMP Gcc
#  define TC_COMP_Gcc 1
#elif defined(__SUNPRO_C) || defined(__SUNPRO_CC)
#  define TC_COMP Sunpro
#  define TC_COMP_Sunpro 1
#else
#  error Unknown C/C++ compiler on Linux
#endif

/* Ident macro */
//SSC: It didn't work on 4.4.3
//define TC_IDENT(ID) _Pragma(ident(ID))
#define TC_IDENT(ID)


# define TC_USE_STRERROR_R

#ifdef TC_COMP_Gcc
#  define TC_FUNCTION __PRETTY_FUNCTION__
#  define TC_THREAD_LOCAL __thread
#  define TC_NO_MUTEXATTR_SETPROTOCOL
#  define TC_USE_LONG_LONG 0
   /* For CheckIterator: */
#  define TC_NO_ITERATORTRAITS_TYPES
#endif

#ifdef TC_COMP_Intel
#  define TC_NO_SNPRINTF
#  define TC_NO_STD_NUMERIC_LIMITS
#  define TC_NO_MUTEXATTR_SETPROTOCOL
#  define TC_VTL_PTR_TO_MEMBER_HACK
#endif



#endif /* TC_CONFIG_LINUX_H */
